Skip Headers

Oracle® Text Reference 10g Release 2 (10.2) Part Number B14218-01 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# 4 Special Characters in Oracle Text Queries

This chapter describes the special characters that can be used in Text queries. In addition, it provides a list of the words and characters that Oracle Text treats as reserved words and characters.

The following topics are covered in this chapter:

- Grouping Characters

- Escape Characters

- Reserved Words and Characters

## Grouping Characters

The grouping characters control operator precedence by grouping query terms and operators in a query expression. The grouping characters are:

Table 4-1 Characters for Grouping Query Terms

Grouping Character | Description
--- | ---
( ) | The parentheses characters serve to group terms and operators found between the characters
[ ] | The bracket characters serve to group terms and operators found between the characters; however, they prevent penetrations for the expansion operators (fuzzy, soundex, stem).

The beginning of a group of terms and operators is indicated by an open character from one of the sets of grouping characters. The ending of a group is indicated by the occurrence of the appropriate close character for the open character that started the group. Between the two characters, other groups may occur.

For example, the open parenthesis indicates the beginning of a group. The first close parenthesis encountered is the end of the group. Any open parentheses encountered before the close parenthesis indicate nested groups.

## Escape Characters

To query on words or symbols that have special meaning to query expressions such as and & or| accum, you must escape them. There are two ways to escape characters in a query expression:

Table 4-2 Characters for Escaping Query Terms

Escape Character | Description
--- | ---
{} | Use braces to escape a string of characters or symbols. Everything within a set of braces in considered part of the escape sequence. When you use braces to escape a single character, the escaped character becomes a separate token in the query.
\ | Use the backslash character to escape a single character or symbol. Only the character immediately following the backslash is escaped. For example, a query of blue\-green matches blue-green and blue green.

In the following examples, an escape sequence is necessary because each expression contains a Text operator or reserved symbol:

    'high\-voltage'
    '{high-voltage}'

    'XY\&Z'
    '{XY&Z}'

In the first example, the query matches high-voltage or high voltage.

Note that in the second example, a query on XY&Z will return 'XY Z', 'XY-Z', 'XY*Z', and so forth, as well as 'XY&Z'. This is because non-alphabetic characters are treated as whitespace (so XY&Z is treated as 'XY Z'). To match only XY&Z, you must declare & as a printjoin. (If you do, however, XY&Z will not match 'XY & Z'.) For more on printjoins, see BASIC_LEXER.

Note: If you use braces to escape an individual character within a word, the character is escaped, but the word is broken into three tokens. For example, a query written as high{-}voltage searches for high - voltage, with the space on either side of the hyphen.

### Querying Escape Characters

The open brace { signals the beginning of the escape sequence, and the closed brace } indicates the end of the sequence. Everything between the opening brace and the closing brace is part of the escaped query expression (including any open brace characters). To include the close brace character in an escaped query expression, use `}}`.

To escape the backslash escape character, use `\\`.

## Reserved Words and Characters

Table 4-3 lists the Oracle Text reserved words and characters that must be escaped when you want to search them in `CONTAINS` queries:

Table 4-3 Reserved Words and Characters

Reserved Words | Reserved Characters | Operator
--- | --- | ---
ABOUT | (none) | ABOUT
ACCUM | , | Accumulate
AND | & | And
BT | (none) | Broader Term
BTG | (none) | Broader Term Generic
BTI | (none) | Broader Term Instance
BTP | (none) | Broader Term Partitive
EQUIV | = | Equivalence
FUZZY | ? | fuzzy
(none) | { } | escape characters (multiple)
(none) | \ | escape character (single)
(none) | ( ) | grouping characters
(none) | [ ] | grouping characters
HASPATH | (none) | HASPATH
INPATH | (none) | INPATH
MDATA | (none) | MDATA
MINUS | - | MINUS
NEAR | ; | NEAR
NOT | ~ | NOT
NT | (none) | Narrower Term
NTG | (none) | Narrower Term Generic
NTI | (none) | Narrower Term Instance
NTP | (none) | Narrower Term Partitive
OR | | | OR
PT | (none) | Preferred Term
RT | (none) | Related Term
(none) | $ | stem
(none) | ! | soundex
SQE | (none) | Stored Query Expression
SYN | (none) | Synonym
(none) | > | threshold
TR | (none) | Translation Term
TRSYN | (none) | Translation Term Synonym
TT | (none) | Top Term
(none) | * | weight
(none) | % | wildcard character (multiple)
(none) | _ | wildcard character (single)
WITHIN | (none) | WITHIN